home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 001-100 / 001-025 / 020 / amigatoatari / binfio.c next >
C/C++ Source or Header  |  1995-03-17  |  773b  |  49 lines

  1. #include <stdio.h>
  2.  
  3. #define    MSDOS    1
  4. #define    VAXVMS    2
  5. #define    UNIX42    3
  6. #define    SYSV    4
  7.  
  8. #define    READ    0
  9. #define    WRITE    1
  10. #define    MACHINE    MSDOS
  11.  
  12. ebinopen(name, mode)
  13. char *name;
  14. int mode;
  15. {
  16.     int fn;
  17.  
  18.     if((fn = binopen(name, mode)) != -1) return fn;
  19.     fprintf(stderr, "Cannot %s: %s\n",
  20.         mode == 1 ? "create" : "open",
  21.         name);
  22.     exit(1);
  23. }
  24.  
  25.  
  26. binopen(name, mode)
  27. char *name;
  28. int mode;
  29. {
  30. #if MACHINE == VAXVMS
  31.     if(mode == WRITE) return creat(name, 0666);
  32.     else return open(name, mode);
  33. #endif
  34.  
  35. #if MACHINE == MSDOS
  36. #define    UNCOOKED 0x8000        /* pure binary i/o */
  37.     if(mode == WRITE) return creat(name, 0666 | UNCOOKED);
  38.     else return open(name, mode | UNCOOKED);
  39. #endif
  40.  
  41. #if MACHINE == UNIX42
  42. ))))) force-compiler-error
  43. #endif
  44.  
  45. #if MACHINE == SYSV
  46. ))))) force-compiler-error
  47. #endif
  48. }
  49.